/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package proxyserverapp;

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.UnicastRemoteObject;
import java.util.Scanner;

/*
 * Esta eh a classe que representa um servidor de calculadoras que acessa o proxy e envia
 * o nome do servico que deseja responder
 */
public class CalculadoraServer extends UnicastRemoteObject implements ICalculadora {

    public CalculadoraServer() throws RemoteException {
	super();
    }

    public int add (int a, int b) throws RemoteException {
        return a + b;
    }

    public static void main(String args[]) {

        try {
            Scanner sc = new Scanner(System.in);

            System.out.print("Digite o IP do servidor da calculadora: ");
            String serverip = sc.nextLine();

            System.out.print("Digite o nome do servico para o servidor de calculadora: ");
            String servicename = sc.nextLine();

            System.out.print("Digite o IP do servidor de proxy: ");
            String proxyip = sc.nextLine();
            IProxy p = (IProxy) Naming.lookup("rmi://" + proxyip + ":1099/ProxyService1");

            ICalculadora calc = new CalculadoraServer();

            String connectionStr = "rmi://" + serverip + ":1099/" + servicename;
            
            Naming.rebind (connectionStr, calc);
            System.out.println("Calculator service is up and responding to '" + connectionStr + "'...");
            p.connect(connectionStr);


        } catch (Exception e) {
                System.out.println(e);
        }

    }


}
